์๋, ํจ์จ์ฑ, ํตํฉ๋ ๊ฐ๋ฐ์ ๊ฒฝํ์ ์ค์ ์ ๋ ํฌ๊ด์ ์ธ ์๋ฃจ์ ์ธ Rome ํด์ฒด์ธ์ ์์๋ณด์ธ์. Rome์ด ์ฌ๋ฌ๋ถ์ ์ํฌํ๋ก์ฐ๋ฅผ ์ด๋ป๊ฒ ํ์ ํ ์ ์๋์ง ๋ฐฐ์๋ณด์ธ์.
Rome ํด์ฒด์ธ: ์ฌ์ธ์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ ์๋ฃจ์
ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ๋ณต์กํ ์ํ๊ณ๋ก ์งํํ์ต๋๋ค. ๋์์์ด ์์์ง๋ ์๋ก์ด ํ๋ ์์ํฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋๊ตฌ๋ค์ ์๋์ ์ผ ์ ์์ต๋๋ค. ๊ฐ๋ฐ์๋ค์ ์ข ์ข ๋ฆฐํ , ํฌ๋งคํ , ๋น๋ฉ, ์ฝ๋ ํธ๋์คํ์ผ๋ง์ ์ํด ์ฌ๋ฌ ๋๊ตฌ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ๋จํธ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ๋นํจ์จ์ฑ, ๋ถ์ผ์น, ๊ทธ๋ฆฌ๊ณ ๊ฐํ๋ฅธ ํ์ต ๊ณก์ ์ ์ด๋ํฉ๋๋ค. ๋ฐ๋ก ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์๊ฒ ํตํฉ๋ ์ฌ์ธ์ ์๋ฃจ์ ์ ์ ๊ณตํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ ์ผ์ฌ ์ฐฌ ํ๋ก์ ํธ, Rome ํด์ฒด์ธ์ด ๋ฑ์ฅํ์ต๋๋ค.
Rome ํด์ฒด์ธ์ด๋ ๋ฌด์์ธ๊ฐ์?
Rome์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์ํ ํด์ฒด์ธ์ผ๋ก, ์๋ง์ ๊ธฐ์กด ๋๊ตฌ๋ค์ ๋จ์ผ์ ์์ง๋ ฅ ์๋ ์์คํ ์ผ๋ก ๋์ฒดํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ด๋ ์ ํต์ ์ธ ํ๋ก ํธ์๋ ๊ฐ๋ฐ ๋๊ตฌ ์ธํธ์ ๋ํ ๋ ๋น ๋ฅด๊ณ , ๋ ์ ๋ขฐํ ์ ์์ผ๋ฉฐ, ๋ ์ฌ์ฉํ๊ธฐ ์ฌ์ด ๋์์ด ๋๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. Rome์ ํต์ฌ ์ฒ ํ์ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํ๊ณ , ์ฑ๋ฅ์ ํฅ์์ํค๋ฉฐ, ๋ค์ํ ํ๋ก์ ํธ ์ ๋ฐ์ ๊ฑธ์ณ ์ผ๊ด๋ ๊ฐ๋ฐ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค.
์ด ํ๋ก์ ํธ๋ Babel ๋ฐ ๊ธฐํ ์ ๋ช ํ ์คํ์์ค ํ๋ก์ ํธ์ ์ ์์์ธ ์ธ๋ฐ์ค์ฐฌ ๋งฅ์ผ์ง(Sebastian McKenzie)๊ฐ ์ฃผ๋ํ๊ณ ์์ต๋๋ค. Rome์ ์ฑ๋ฅ์ ์ผ๋์ ๋๊ณ ์ฒ์๋ถํฐ ๊ตฌ์ถ๋์์ผ๋ฉฐ, ํต์ฌ ๊ตฌ์ฑ ์์์ Rust๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ฌํ ์ ํ์ ํจ์จ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ์ฌ ๋น๋ ์๊ฐ์ ๋จ์ถํ๊ณ ์ ๋ฐ์ ์ธ ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ ๋ฐ ๊ตฌ์ฑ ์์
Rome์ ์ ์ฒด ํ๋ก ํธ์๋ ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ๋ฅผ ํฌ๊ดํ๋ ํฌ๊ด์ ์ธ ๊ธฐ๋ฅ ์ธํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ค์์ ํต์ฌ ๊ตฌ์ฑ ์์ ์ค ์ผ๋ถ์ ๋๋ค:
- ์ปดํ์ผ๋ฌ: Rome์ ์ปดํ์ผ๋ฌ๋ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ณํํ๋ ๊ฒ๊ณผ ๊ฐ์ ํธ๋์คํ์ผ๋ง๊ณผ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐ CSS ํ์ผ์ ๋ฒ๋ค๋ง์ ๋ชจ๋ ์ฒ๋ฆฌํฉ๋๋ค. ์ด๋ก ์ธํด Babel์ด๋ Webpack๊ณผ ๊ฐ์ ๋ณ๋์ ๋๊ตฌ๊ฐ ํ์ ์๊ฒ ๋ฉ๋๋ค.
- ๋ฆฐํฐ: ๋ฆฐํฐ๋ ์ ์ฌ์ ์ธ ์ค๋ฅ, ์คํ์ผ ๋ฌธ์ ๋ฐ ๊ธฐํ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ์ ๋ํด ์ฝ๋๋ฅผ ์๋์ผ๋ก ํ์ธํ์ฌ ์ฝ๋ ํ์ง๊ณผ ์ผ๊ด์ฑ์ ๋ณด์ฅํฉ๋๋ค.
- ํฌ๋งคํฐ: Rome์ ํฌ๋งคํฐ๋ ๋ฏธ๋ฆฌ ์ ์๋ ๊ท์น์ ๋ฐ๋ผ ์ฝ๋๋ฅผ ์๋์ผ๋ก ํฌ๋งคํ ํ์ฌ ํ๋ก์ ํธ์ ํ ์ ์ฒด์ ์ผ๊ด๋ ์คํ์ผ์ ๋ณด์ฅํฉ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ, ํ์ ์คํฌ๋ฆฝํธ, JSX์ ๊ฐ์ ์ธ์ด๋ฅผ ์ง์ํฉ๋๋ค.
- ๋ฒ๋ค๋ฌ: Rome์ ๋ฒ๋ค๋ฌ๋ ๋ฐฐํฌ์ ํ์ํ ๋ชจ๋ ํ์ผ์ ์ต์ ํ๋ ๋ฒ๋ค๋ก ๊ฒฐํฉํ์ฌ HTTP ์์ฒญ ์๋ฅผ ์ต์ํํ๊ณ ํ์ด์ง ๋ก๋ ์๊ฐ์ ๊ฐ์ ํฉ๋๋ค.
- ๋ถ์๊ธฐ: ๋ถ์๊ธฐ๋ ์ฝ๋ ์ดํด์ ์ ์ฌ์ ์ธ ์ต์ ํ๋ฅผ ๋๊ธฐ ์ํด ์ค๊ณ๋์์ต๋๋ค. ์ฌ์ฉ๋์ง ์๋ ์ฝ๋๋ ์ ์ฌ์ ์ธ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํ ์ ์์ต๋๋ค.
Rome ์ฌ์ฉ์ ์ด์
Rome์ ์ฑํํ๋ฉด ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์๊ฒ ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ์ฃผ์ ์ด์ ์ ์ ๊ณตํฉ๋๋ค:
- ํตํฉ ํด์ฒด์ธ: Rome์ ์ฌ๋ฌ ๋๊ตฌ๋ฅผ ๋จ์ผ ์์คํ ์ผ๋ก ํตํฉํ์ฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋จ์ํํ๊ณ ๋ณต์กํ ๊ตฌ์ฑ์ ๊ด๋ฆฌํ ํ์์ฑ์ ์ค์ฌ์ค๋๋ค.
- ์ฑ๋ฅ ํฅ์: Rust๋ก ๊ตฌ์ถ๋ Rome์ ์๋๋ฅผ ์ํด ์ค๊ณ๋์์ต๋๋ค. Webpack๊ณผ ๊ฐ์ ๋๊ตฌ์ ๋นํด ๋น๋ ์๊ฐ์ด ํฌ๊ฒ ๋จ์ถ๋์ด ๊ฐ๋ฐ์ ์์ฐ์ฑ์ด ํฅ์๋ฉ๋๋ค.
- ์ผ๊ด๋ ์ฝ๋ ์คํ์ผ: ํตํฉ๋ ํฌ๋งคํฐ๋ ํ๋ก์ ํธ ์ ์ฒด์ ์ผ๊ด๋ ์ฝ๋ ์คํ์ผ์ ์ ์ฉํ์ฌ ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ์ฝ๋๋ฅผ ์ฝ๊ณ , ์ ์ง๋ณด์ํ๊ณ , ํ์ ํ๊ธฐ ์ฝ๊ฒ ๋ง๋ญ๋๋ค.
- ํฅ์๋ ๊ฐ๋ฐ์ ๊ฒฝํ: Rome์ ๋ช ํํ ์ค๋ฅ ๋ฉ์์ง์ ์ ์ฉํ ์ ์์ ํตํด ๊ฐ์ํ๋ ๊ฐ๋ฐ ๊ฒฝํ์ ์ ๊ณตํ์ฌ ๋๋ฒ๊น ๋ฐ ๋ฌธ์ ํด๊ฒฐ์ ์์๋๋ ์๊ฐ์ ์ค์ฌ์ค๋๋ค.
- ๋จ์ํ๋ ๊ตฌ์ฑ: Rome์ ํ์ํ ๊ตฌ์ฑ์ ์์ ์ต์ํํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ต์ํ์ ์ค์ ์ผ๋ก ์ฆ์ ์๋ํ๋ฏ๋ก ์์ํ๊ณ ์ ์ง ๊ด๋ฆฌํ๊ธฐ๊ฐ ๋ ์ฝ์ต๋๋ค.
- ์คํ ์์ค ๋ฐ ์ปค๋ฎค๋ํฐ ์ฃผ๋: Rome์ ์คํ ์์ค ํ๋ก์ ํธ์ด๋ฏ๋ก ์ฌ์ฉ, ์์ ๋ฐ ๋ฐฐํฌ๊ฐ ์์ ๋กญ๊ฒ ๊ฐ๋ฅํฉ๋๋ค. ๊ฐ๋ฐ์ ๊ธฐ์ฌํ๊ณ ์ง์์ ์ ๊ณตํ๋ ์ฑ์ฅํ๋ ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ์ ์ง์์ ๋ฐ๊ณ ์์ต๋๋ค.
Rome ์์ํ๊ธฐ
Rome์ ์์ํ๋ ๊ฒ์ ๋น๊ต์ ๊ฐ๋จํฉ๋๋ค. ๊ด๋ จ๋ ๋จ๊ณ์ ๊ธฐ๋ณธ ๊ฐ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์ค์น: Rome์ ์ค์นํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ npm์ด๋ yarn์ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค. ์:
npm install @romejs/rome -D
๋๋yarn add @romejs/rome -D
- ๊ตฌ์ฑ: Rome์ ์ต์ํ์ ๊ตฌ์ฑ์ ์งํฅํ์ง๋ง, ์ค์ ์ ์ฌ์ฉ์ ์ ์ํ๊ธฐ ์ํด ํ๋ก์ ํธ ๋ฃจํธ์
rome.json
ํ์ผ์ ์์ฑํด์ผ ํ ์๋ ์์ต๋๋ค. ์ด ํ์ผ์์ ๋ฆฐํฐ, ํฌ๋งคํฐ ๋ฐ ๊ธฐํ ์ต์ ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. - ์ฌ์ฉ๋ฒ: ๋ช
๋ น์ค์์ Rome์ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ๋ฆฐํ
, ํฌ๋งคํ
๋ฐ ๋น๋ํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ธ ๋ช
๋ น์ด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
rome lint ./src
: `src` ๋๋ ํ ๋ฆฌ์์ ๋ฆฐํฐ๋ฅผ ์คํํฉ๋๋ค.rome format ./src --write
: `src` ๋๋ ํ ๋ฆฌ์ ์ฝ๋๋ฅผ ํฌ๋งคํ ํ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ผ์ ์๋๋ค.rome check ./src
: ๋ฆฐํ ๊ณผ ํฌ๋งคํ ์ ๋ชจ๋ ๊ฒฐํฉํฉ๋๋ค.rome build ./src -d dist
: `src`์ ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๊ณ `dist` ๋๋ ํ ๋ฆฌ๋ก ์ถ๋ ฅํฉ๋๋ค (์คํ์ ๊ธฐ๋ฅ).
- ์๋ํฐ ํตํฉ: ์ค์๊ฐ ๋ฆฐํ ๋ฐ ํฌ๋งคํ ์ ์ํด Rome์ ์ฝ๋ ์๋ํฐ์ ํตํฉํ์ธ์. VS Code์ ๊ฐ์ ๋ง์ ์ธ๊ธฐ ์๋ ์๋ํฐ๊ฐ ํ์ฅ ํ๋ก๊ทธ๋จ์ ํตํด Rome์ ์ง์ํฉ๋๋ค.
์์:
๊ฐ๋จํ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ(index.js
)์ด ์๋ค๊ณ ๊ฐ์ ํด ๋ด
์๋ค:
function myFunction(a, b) {
return a+b;
}
console.log(myFunction(2,3));
Rome์ ์ฌ์ฉํ์ฌ ์ด ํ์ผ์ rome format index.js --write
๋ช
๋ น์ด๋ก ํฌ๋งคํ
ํ ์ ์์ต๋๋ค. Rome์ ๊ธฐ๋ณธ ์ค์ ์ ๋ฐ๋ผ ์ฝ๋๋ฅผ ์๋์ผ๋ก ํฌ๋งคํ
ํฉ๋๋ค.
๊ธ๋ก๋ฒ ๋งฅ๋ฝ์์์ Rome
Rome์ ์ด์ ์ ๋ณดํธ์ ์ด๋ฉฐ ์ ์ธ๊ณ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์๊ฒ ์ ์ฉ๋ฉ๋๋ค. ๋ค์ ์๋๋ฆฌ์ค๋ฅผ ๊ณ ๋ คํด ๋ณด์ธ์:
- ์ธ๋: ๋๊ท๋ชจ ์ด์ปค๋จธ์ค ํ๋ซํผ์ ๊ฐ๋ฐํ๋ ์ธ๋์ ๊ฐ๋ฐํ์ Rome์ ์ฑ๋ฅ์ ํ์ฉํ์ฌ ๋น๋ ์๊ฐ์ ๋จ์ถํ๊ณ , ๋ฐฐํฌ ์๋๋ฅผ ๊ฐ์ ํ๋ฉฐ ๋น์ฉ์ ์ ๊ฐํ ์ ์์ต๋๋ค.
- ๋ธ๋ผ์ง: ๋ธ๋ผ์ง์ ์คํํธ์ ์ Rome์ ์ฌ์ฉ ์ฉ์ด์ฑ๊ณผ ์ต์ํ์ ๊ตฌ์ฑ์ ํตํด ๊ฐ๋ฐ ํ๊ฒฝ์ ์ ์ํ๊ฒ ์ค์ ํ๊ณ ๊ธฐ๋ฅ ๊ตฌ์ถ์ ์ง์คํ ์ ์์ต๋๋ค.
- ์ผ๋ณธ: ๋ณต์กํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ ์ผ๋ณธ ๊ฐ๋ฐ์๋ค์ Rome์ ์ผ๊ด๋ ์ฝ๋ ํฌ๋งคํ ์ ์ฌ์ฉํ์ฌ ํ ๋ด ํ์ ์ ๊ฐ์ ํ๊ณ , ์ด๋ฅผ ํตํด ์ฝ๋ ํ์ง์ ๋์ด๊ณ ์ ์ง๋ณด์๋ฅผ ์ฉ์ดํ๊ฒ ํ ์ ์์ต๋๋ค.
- ์ ๋ฝ (๋ค์ํ ๊ตญ๊ฐ): ์ ๋ฝ ์ ์ญ์ ๊ธฐ์ ๋ค์ ๊ท๋ชจ๋ ํน์ ๊ตญ๊ฐ์ ๊ด๊ณ์์ด Rome์ ์ฌ์ฉํ์ฌ ํ๋ก ํธ์๋ ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ๋ฅผ ๊ฐ์ ํ๊ณ , ์์ฐ์ฑ๊ณผ ์ผ๊ด์ฑ์ ๋์ผ ์ ์์ต๋๋ค. ๋ ์ผ, ํ๋์ค, ์๊ตญ ๋ฑ์ ๊ธฐ์ ์ ๋ํ ์ด์ ์ ์๊ฐํด๋ณด์ธ์. ํตํฉ๋ ํน์ฑ์ ํ ๋ด ์ธ์ด ์ฅ๋ฒฝ์ ๊ทน๋ณตํ๋ ๋ฐ๋ ๋์์ด ๋ฉ๋๋ค.
- ๋ถ๋ฏธ (๋ฏธ๊ตญ ๋ฐ ์บ๋๋ค): ๋์์์ด ํจ์จ์ฑ์ ์ถ๊ตฌํ๋ ๋ฏธ๊ตญ๊ณผ ์บ๋๋ค ๊ฐ๋ฐ์๋ค์๊ฒ Rome์ ๊ฐ๋ฐ ์์ ์ ์ต์ ํํ๋ ๋ฐ ๊ท์คํ ์์ฐ์ ๋๋ค. ์ผ๊ด๋ ํฌ๋งคํ ๊ณผ ๋ฆฐํ ์ ๋๊ท๋ชจ ํ๊ณผ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์คํ์ผ๋ก ์์ ํ ๋๋ ์ฝ๋ ํ์ง์ ๋ณด์ฅํฉ๋๋ค.
์ด๋ ๋ช ๊ฐ์ง ์์ ๋ถ๊ณผํ๋ฉฐ, ์ง๋ฆฌ์ ์์น๋ ํ๋ก์ ํธ ์ ํ์ ๊ด๊ณ์์ด ๋ชจ๋ ํ์ ๋ํ Rome์ ๊ด๋ฒ์ํ ์ ์ฌ๋ ฅ์ ๋ณด์ฌ์ค๋๋ค.
ํ์ฌ ์ํ ๋ฐ ํฅํ ๋ฐฉํฅ
Rome์ ์์ง ํ๋ฐํ ๊ฐ๋ฐ ์ค์ด๋ฉฐ ๋ฒ ํ ๋ฒ์ ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ์ด๋ฏธ ์๋นํ ์์ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง, ์์ง ๋ชจ๋ ๊ธฐ์กด ํ๋ก ํธ์๋ ๊ฐ๋ฐ ๋๊ตฌ๋ฅผ ์์ ํ ๋์ฒดํ ์๋ ์์ต๋๋ค. ํ๋ก์ ํธ ๋ก๋๋งต์๋ ์ฑ๋ฅ์ ๋ํ ์ง์์ ์ธ ๊ฐ์ , ๋ค์ํ ํ๋ก ํธ์๋ ๊ธฐ์ ์ ๋ํ ๋ณด๋ค ํฌ๊ด์ ์ธ ์ง์, ํฅ์๋ ๊ธฐ๋ฅ ์ธํธ๊ฐ ํฌํจ๋ฉ๋๋ค. ๊ฐ๋ฐ์๋ค์ ์ปค๋ฎค๋ํฐ์ ํผ๋๋ฐฑ์ ๋ฐ์ํ๊ณ ๋ฒ๊ทธ๋ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ง์์ ์ผ๋ก ๋๊ตฌ๋ฅผ ๊ฐ์ ํ๊ณ ์์ต๋๋ค.
์ฃผ์ ์ค์ ๋ถ์ผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๋ฒ๋ค๋ง ๊ฐ์ : ๋ ๋ณต์กํ ์๋๋ฆฌ์ค๋ฅผ ์ฒ๋ฆฌํ๊ณ ์ฑ๋ฅ์ ์ต์ ํํ๊ธฐ ์ํด ๋ฒ๋ค๋ง ๊ธฐ๋ฅ์ ํฅ์์ํต๋๋ค.
- ์ธ์ด ์ง์ ํ์ฅ: ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐ ํ์ ์คํฌ๋ฆฝํธ ๊ธฐ๋ฅ์ ๋ํด ๋ณด๋ค ์์ ํ ์ง์์ ์ ๊ณตํฉ๋๋ค.
- ๊ตฌ์ฑ ๊ฐ๋ฅ์ฑ ์ฆ๋: ๋ฆฐํฐ, ํฌ๋งคํฐ ๋ฐ ๊ธฐํ ๊ตฌ์ฑ ์์์ ๋ํด ๋ ์ธ๋ถํ๋ ์ ์ด๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ํ๊ณ ํตํฉ ๊ฐ์ : ํ๋ก ํธ์๋ ์ํ๊ณ์ ๋ค๋ฅธ ๋๊ตฌ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ํตํฉ์ ๊ฐ์ ํฉ๋๋ค.
Rome vs. ๋ค๋ฅธ ๋๊ตฌ๋ค
Rome์ ๋์ฒดํ๊ฑฐ๋ ๋ณด์ํ๊ณ ์ ํ๋ ๋ช ๊ฐ์ง ์ธ๊ธฐ ์๋ ๋๊ตฌ๋ค๊ณผ ๋น๊ตํด ๋ณด๋ ๊ฒ์ด ๋์์ด ๋ฉ๋๋ค:
- Babel: Babel์ ์ฃผ๋ก ์ต์ ์๋ฐ์คํฌ๋ฆฝํธ(ES6+)๋ฅผ ๊ตฌํ ๋ฒ์ ์ผ๋ก ๋ณํํ์ฌ ๋ ๋์ ๋ธ๋ผ์ฐ์ ํธํ์ฑ์ ์ ๊ณตํ๋ ํธ๋์คํ์ผ๋ฌ์ ๋๋ค. Rome์ ํธ๋์คํ์ผ๋ง ๊ธฐ๋ฅ์ ์ปดํ์ผ๋ฌ์ ํตํฉํ์ฌ Babel์ ๋์ฒดํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
- Webpack: Webpack์ ์๋ฐ์คํฌ๋ฆฝํธ, CSS ๋ฐ ๊ธฐํ ์์ฐ์ ๋ฐฐํฌ์ฉ์ผ๋ก ๋ฒ๋ค๋งํ๋ ๋ชจ๋ ๋ฒ๋ค๋ฌ์ ๋๋ค. Rome์ ๋ฒ๋ค๋ฌ๋ ์๋์ ๋จ์์ฑ์ ์ค์ ์ ๋๊ณ ์ ์ฌํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ESLint: ESLint๋ ์ฝ๋ ํ์ง ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ ์์ ํ๋ ๋ฐ ๋์์ด ๋๋ ์ธ๊ธฐ ์๋ ๋ฆฐํฐ์ ๋๋ค. Rome์ ๋ฆฐํฐ๋ ๋ ๊ฐ์ํ๋ ๊ตฌ์ฑ๊ณผ ํฅ์๋ ์ฑ๋ฅ์ผ๋ก ์ ์ฌํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- Prettier: Prettier๋ ๋ฏธ๋ฆฌ ์ ์๋ ๊ท์น์ ๋ฐ๋ผ ์ฝ๋๋ฅผ ์๋์ผ๋ก ํฌ๋งคํ ํ๋ ์ฝ๋ ํฌ๋งคํฐ์ ๋๋ค. Rome์ ํฌ๋งคํฐ๋ ์ผ๊ด์ฑ๊ณผ ์ฌ์ฉ ์ฉ์ด์ฑ์ ์ค์ ์ ๋๊ณ ์ ์ฌํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- SWC (Speedy Web Compiler): Rome๊ณผ ์ ์ฌํ๊ฒ SWC๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์ํ Rust ๊ธฐ๋ฐ ํด์ฒด์ธ์ ๋๋ค. ์ด ๋ํ Rust๋ฅผ ํตํด ๋น ๋ฅธ ์ฑ๋ฅ์ ์ ๊ณตํ๋ฉฐ ํธ๋์คํ์ผ๋ง, ๋ฒ๋ค๋ง ๋ฑ์ ์ ๊ณตํฉ๋๋ค. ๋ ๋ค ํ๋ฅญํ ๋๊ตฌ์ด์ง๋ง, ์ด์ ์ ์ฝ๊ฐ ๋ค๋ฅผ ์ ์์ต๋๋ค.
Rome์ ํต์ฌ ์ฐจ๋ณ์ ์ ์ฌ์ธ์ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค. ์ด๋ ์ฌ๋ฌ ๋๊ตฌ์ ๊ตฌ์ฑ์ ๊ด๋ฆฌํ ํ์์ฑ์ ์ต์ํํ๋ฉด์ ํตํฉ๋๊ณ ์์ง๋ ฅ ์๋ ์๋ฃจ์ ์ ์ ๊ณตํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ์๋, ์ฑ๋ฅ, ์ฌ์ฉ ์ฉ์ด์ฑ์ ์ค์ ์ ๋์ด ๋ ํจ์จ์ ์ด๊ณ ๊ฐ์ํ๋ ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ๋ฅผ ์ฐพ๋ ๊ฐ๋ฐ์์๊ฒ ๋งค๋ ฅ์ ์ธ ์ต์ ์ด ๋ฉ๋๋ค.
์ ์ฌ์ ๊ณผ์ ๋ฐ ๊ณ ๋ ค ์ฌํญ
Rome์ ๋ง์ ์ด์ ์ ์ ๊ณตํ์ง๋ง, ์ผ๋์ ๋์ด์ผ ํ ๋ช ๊ฐ์ง ๊ณผ์ ์ ๊ณ ๋ ค ์ฌํญ๋ ์์ต๋๋ค:
- ์ฑ์๋: Rome์ ์์ง ํ๋ฐํ ๊ฐ๋ฐ ์ค์ด๋ฉฐ ์ผ๋ถ ๊ธฐ๋ฅ์ ์์ ํ ์ฑ์ํ์ง ์์์ ์ ์์ต๋๋ค. ์ด ๋จ๊ณ์์๋ ๋ฒ๊ทธ๋ ๋์ ๋ณ๊ฒฝ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
- ์ํ๊ณ ํตํฉ: Rome์ ์๋ฒฝํ ์๋ฃจ์ ์ ๋ชฉํ๋ก ํ์ง๋ง, ๊ธฐ์กด ๋๊ตฌ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ํํ๊ฒ ํตํฉ๋์ด์ผ ํฉ๋๋ค. Rome์ด ์ฌ์ฉ ์ค์ธ ํน์ ๋๊ตฌ๋ฅผ ์ง์ํ๋์ง ํ์ธํด์ผ ํฉ๋๋ค.
- ํ์ต ๊ณก์ : Rome์ ๋จ์์ฑ์ ์ํด ์ค๊ณ๋์์ง๋ง, ์๋ก์ด ๋๊ตฌ๋ฅผ ์ฑํํ๋ ๋ฐ๋ ์ฌ์ ํ ํ์ต ๊ณก์ ์ด ์์ต๋๋ค. ๋น์ ์ ํด๋น ๋ช ๋ น์ด, ๊ตฌ์ฑ ์ต์ ๋ฐ ๊ธฐ์กด ์ํฌํ๋ก์ฐ์์ ํตํฉ ๋ฐฉ๋ฒ์ ๋ฐฐ์์ผ ํฉ๋๋ค.
- ์ปค๋ฎค๋ํฐ ์ง์: Rome์ ์์ง ๋น๊ต์ ์๋ก์ด ํ๋ก์ ํธ์ด๋ฏ๋ก ์ปค๋ฎค๋ํฐ ์ง์์ด ๋ ์ค๋๋ ๋๊ตฌ๋ค๋งํผ ๊ด๋ฒ์ํ์ง ์์ ์ ์์ต๋๋ค.
- ํธํ์ฑ: ์ฌ์ฉ ์ค์ธ ํ๋ ์์ํฌ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ Rome์ด ํธํ๋๋์ง ํ์ธํด์ผ ํฉ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ง์ํ์ง๋ง, ํน์ ํ๋ ์์ํฌ์๋ Rome์ด ์์ง ์ง์ ์ง์ํ์ง ์๋ ํนํ๋ ๋น๋ ํ๋ก์ธ์ค๊ฐ ์์ ์ ์์ต๋๋ค.
๊ฒฐ๋ก : ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ๋ฏธ๋๋ฅผ ์์ฉํ๊ธฐ
Rome ํด์ฒด์ธ์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๋ ๋ฐ ์์ด ์ค์ํ ์ง์ ์ ๋ํ๋ ๋๋ค. ๊ทธ ์๋, ์ผ๊ด์ฑ, ๊ทธ๋ฆฌ๊ณ ํตํฉ๋ ๊ฐ๋ฐ์ ๊ฒฝํ์ ๋ํ ์ง์ค์ ์ ํต์ ์ธ ๋๊ตฌ ์ธํธ์ ๋ํ ๊ฐ๋ ฅํ ๋์์ด ๋ฉ๋๋ค. ์๋ก์ด ๋๊ตฌ๋ฅผ ์ฑํํ๋ ๋ฐ ์ด๋ ค์์ด ๋ฐ๋ฅด์ง๋ง, ์ฑ๋ฅ ํฅ์, ๊ตฌ์ฑ ๋จ์ํ, ์ผ๊ด๋ ์ฝ๋ ์คํ์ผ์ ์ด์ ์ ์ถฉ๋ถํ ๊ณ ๋ คํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
Rome์ด ๊ณ์ํด์ ๋ฐ์ ํ๊ณ ์ฑ์ํด์ง์ ๋ฐ๋ผ, ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ํ์ค์ด ๋์ด ๊ฐ๋ฐ์ ์์ฐ์ฑ๊ณผ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฐ์ ์ธ ํ์ง์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์ฌ๋ ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ถ์ฃผํ ๊ธฐ์ ํ๋ธ์ ์๋ ๊ฐ๋ฐ์๋ถํฐ ์๊ฒฉ์ง์์ ์ผํ๋ ๊ฐ๋ฐ์๊น์ง, ์ ์ธ๊ณ ๊ฐ๋ฐ์๋ค์ Rome์ ๋ฐ์๋ค์ฌ ํ๋ก ํธ์๋ ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ๋ฅผ ๋ ๊ฐ๋จํ๊ณ , ๋น ๋ฅด๋ฉฐ, ํจ์จ์ ์ผ๋ก ๋ง๋ค ์ ์์ต๋๋ค.
Rome์ ํ์ํ๊ณ ์ฑํํจ์ผ๋ก์จ ์ฌ๋ฌ๋ถ์ ๋จ์ํ ์๋ก์ด ๋๊ตฌ๋ฅผ ์ฑํํ๋ ๊ฒ์ด ์๋๋ผ, ํจ์จ์ฑ, ์ฑ๋ฅ, ๊ทธ๋ฆฌ๊ณ ํตํฉ๋ ๊ฐ๋ฐ์ ๊ฒฝํ์ ์ฐ์ ์ํ๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ๋ฏธ๋๋ฅผ ๋ฐ์๋ค์ด๋ ๊ฒ์ ๋๋ค. ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ๋ฏธ๋๋ ์ฌ๊ธฐ์ ์์ผ๋ฉฐ, Rome์ด ๊ทธ ๊ธธ์ ์ด๋๊ณ ์์ต๋๋ค.